﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;
using Sharp.DataTransferObject;
using Sharp.Infrastructure;
using Sharp.Infrastructure.Interfaces;
using Sharp.Infrastructure.Search;

namespace Sharp.ServiceContracts
{
    public partial interface IUserService
    {
        /// <summary>
        /// 发送通知
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [OperationContract, FaultContract(typeof(FaultData))]
        Result SendNotice(NoticeDTO model);

        /// <summary>
        /// 删除通知
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        [OperationContract, FaultContract(typeof(FaultData))]
        Result DeleteNotices(Guid[] ids);

        /// <summary>
        /// 获取通知
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [OperationContract, FaultContract(typeof(FaultData))]
        NoticeDTO GetNoticeInfo(Guid id);

        /// <summary>
        /// 未读通知
        /// </summary>
        /// <returns></returns> 
        [OperationContract, FaultContract(typeof(FaultData))]
        Result<IList<NoticeDTO>> NoReadNotices();

        /// <summary>
        /// 获取通知
        /// </summary>
        /// <param name="pf"></param>
        /// <returns></returns>
        [OperationContract, FaultContract(typeof(FaultData))]
        PagedResult<NoticeDTO> GetNoticePaged(PagingFeature pf);
    }
}
